/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.sigodonto.view.managedbean;

import br.com.sigodonto.model.dao.DaoGenerico;
import br.com.sigodonto.model.entity.Anamnese;
import br.com.sigodonto.model.entity.Paciente;
import br.com.sigodonto.view.datamodel.PacienteDataModel;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author Fidelis
 */
@ManagedBean
@ViewScoped
public class GerenciarAnamneseMB implements Serializable{

    /**
     * Creates a new instance of GerenciarAnamneseMB
     */
    private Paciente pacienteSelecionado;
    private Anamnese anamnese;
    private PacienteDataModel pacienteDataModel;
    private DaoGenerico daoGenerico;

    public GerenciarAnamneseMB() {
        this.anamnese = new Anamnese();
        this.daoGenerico = new DaoGenerico();
        List<Paciente> pacientes = this.daoGenerico.listarTodos(Paciente.class);
        this.pacienteDataModel = new PacienteDataModel(pacientes);
    }

    public Paciente getPacienteSelecionado() {
        return pacienteSelecionado;
    }

    public void setPacienteSelecionado(Paciente pacienteSelecionado) {
        this.pacienteSelecionado = pacienteSelecionado;
    }

    public PacienteDataModel getPacienteDataModel() {
        return pacienteDataModel;
    }

    public void setPacienteDataModel(PacienteDataModel pacienteDataModel) {
        this.pacienteDataModel = pacienteDataModel;
    }

    public Anamnese getAnamnese() {
        return anamnese;
    }

    public void setAnamnese(Anamnese anamnese) {
        this.anamnese = anamnese;
    }

    public void salvarAnamnese() {
        FacesMessage message = new FacesMessage();
        String msg = "FICHA DE ANAMNESE CADASTRADA COM SUCESSO!";
        message.setSeverity(FacesMessage.SEVERITY_INFO);
        boolean certo;

        this.pacienteSelecionado.setAnamnese(this.anamnese);
        Paciente pacienteAtual = this.daoGenerico.atualizar(this.pacienteSelecionado);

        if (pacienteAtual == null) {
            msg = "ERRO AO CADASTRAR A FICHA DE ANAMNESE!";
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
        } else {
            this.pacienteSelecionado = new Paciente();
            this.anamnese = new Anamnese();
        }

        message.setSummary(msg);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }

    public void onRowSelect(SelectEvent event) {
        if (this.pacienteSelecionado.getAnamnese() != null) {
            this.anamnese = this.pacienteSelecionado.getAnamnese();
            FacesMessage message = new FacesMessage();
            String msg = "O PACIENTE SELECIONADO POSSUI UMA FICHA DE ANAMNESE CADASTRADA!";
            message.setSeverity(FacesMessage.SEVERITY_INFO);
            message.setSummary(msg);
            FacesContext.getCurrentInstance().addMessage(null, message);
        } else{
            this.anamnese = new Anamnese();
        }
    }
}
